package ar.edu.utn.frsf.tpae.a2012.g05;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import ar.edu.utn.frsf.tpae.a2012.g05.dao.ClienteDao;
import ar.edu.utn.frsf.tpae.a2012.g05.entity.CajaAhorro;
import ar.edu.utn.frsf.tpae.a2012.g05.entity.Cliente;
import ar.edu.utn.frsf.tpae.a2012.g05.entity.CuentaCorriente;
import ar.edu.utn.frsf.tpae.a2012.g05.entity.Movimiento;
import ar.edu.utn.frsf.tpae.a2012.g05.entity.Pago;
import ar.edu.utn.frsf.tpae.a2012.g05.util.EntityFactory;


public class App 
{
    public static void main( String[] args )
    {
    	ApplicationContext ctx = new ClassPathXmlApplicationContext("persistence-context.xml");
    	
    	ClienteDao clienteDao = (ClienteDao) ctx.getBean("clienteDaoImpl");
	  	
	    Cliente cliente = EntityFactory.getCliente();
		
		CuentaCorriente cuentaCorriente = EntityFactory.getCuentaCorriente();
		cuentaCorriente.setCliente(cliente);
		cliente.getCuentas().add(cuentaCorriente);
		
		CajaAhorro cajaAhorro = EntityFactory.getCajaAhorro();
		cajaAhorro.setCliente(cliente);
		cliente.getCuentas().add(cajaAhorro);
		
	    Movimiento movimiento = EntityFactory.getMovimiento();
	    movimiento.setCuenta(cuentaCorriente);
	    cuentaCorriente.getMovimientos().add(movimiento);
	    
	    Pago pago = EntityFactory.getPago();
	    pago.setCuenta(cajaAhorro);
	    cajaAhorro.getMovimientos().add(pago);
	    
	    clienteDao.saveOrUpdate(cliente);
    }
}

